I. Field of Invention
The present invention relates generally to computer networking. More particularly, the present invention relates to a method and apparatus for exchanging packets between networks using switches and without using a router for routing.
II. Description of the Related Art
Modern computer networks including the Internet commonly layer protocols using protocol layering models such as the open systems interconnect (OSI) seven layer networking model and the transport control protocol (TCP)/internet protocol (IP) Internet layering model. These models promote distributed computing and facilitate network-to-network connectivity. Further, these models facilitate the exchange of packets or datagrams between hosts, or clients, on disparate networks.
The exchange of IP packets between hosts on networks such as the Internet are well documented in, for example, xe2x80x9cInternetworking with TCP/IP, Volume I, Principles, Protocols, and Architectures,xe2x80x9d Douglas E., Comer, 1991, which is incorporated herein by reference. When a host attached to a network prepares to send an IP packet to its intended destination, the host may perform a route determination process and an address resolution process to decide where the IP packet is to be sent. Further, the route determination process and the address resolution process are logical decisions, whereby the IP packet is either switched to its intended destination (xe2x80x9clayer 2 switchingxe2x80x9d) or forwarded to a device such as a gateway or router (collectively referred to herein below as a xe2x80x9crouterxe2x80x9d) for IP based routing (xe2x80x9croutingxe2x80x9d) through the network (e.g., the Internet) serving the intended destination.
Layer 2 switching refers to switching based on a layer 2 address. Examples of layer 2 addresses include an Ethernet address or a media-access control (MAC) address. The layer 2 address permits an Ethernet frame (or packet) to be switched to the correct destination on a physical network such as an Ethernet. For example, to switch an IP packet that is encapsulated within an Ethernet frame, an Ethernet network may use a layer 2 device (e.g., a switch) to switch the Ethernet frame to the intended destination based on the MAC-address of the destination.
Since layer 2 switching typically only concerns itself with MAC-layer addresses (e.g., a 48-bit physical address), the layer 2 device (also referred to herein as a xe2x80x9cswitchxe2x80x9d and a xe2x80x9clayer 2 switchxe2x80x9d) that performs the layer 2 switching usually maintains an address table to track the MAC-addresses associated which each port on the layer 2 device. For example, when a packet comes in one port, the switch determines whether the address table includes the MAC-address of the destination and uses the MAC-address for switching the packet to the appropriate output port on the switch. Since the switch only concerns itself with MAC-layer address of the destination, the switch does not read the IP address of incoming packets while switching the incoming packet to its intended destination.
Layer 3 refers to the IP and IP packet format. A layer 3 network comprises a network that utilizes IP packets, routes packets from a source network to its destination network based on the IP address included within the IP packet (i.e., an IP address), and relies on a device such as a gateway or router (also referred to herein as a xe2x80x9clayer 3 devicexe2x80x9d) to read the IP address within the IP packet and to forward the IP packet to the destination network based on the IP address.
Routers evaluate the IP address associated with an IP packet. Routers typically use an address mask (also referred to as xe2x80x9csub-net maskxe2x80x9d) to determine the network (or sub-network) identifier of the destination. The router utilizes the address mask to filter the IP address of the IP packet, which reveals the network identifier associated with the IP packet. After determining the network identifier for the destination, the router refers to a routing table that includes information for forwarding the IP packet to the destination based on the network identifier. The router then modifies the packet or datagram and forwards the packet or datagram towards its destination.
Devices that provide layer 2 switching are usually faster when compared to devices that route. However, a layer 2 device (e.g., a switch, a switching hub, or an ATM switch) is usually configured so that client devices (e.g., hosts) attached to the ports of the layer 2 device are logically affiliated with each other in a virtual LAN (VLAN) or sub-network to the exclusion of other client devices on other ports that are affiliated with a different VLAN or sub-network. This affiliation into VLANs permits broadcast traffic to be exchanged between the logically affiliated client devices of a VLAN to the exclusion of the other client devices affiliated with the other VLAN. The layer 2 device may utilize multiple VLANs within the same device by logically partitioning the switch into two or more networks and/or sub-networks. Since multiple VLANs (i.e., multiple networks and/or sub-networks) may be associated with a single layer 2 device or an interconnected set of switches, the use of a router is required to permit transferring IP packets across the logical boundaries of the VLANs, even when the packet source and packet destination reside on different ports of the same layer 2 device (e.g., a switch).
With a network using the IP protocol, when an IP client wants to send packets to another device that is on the same local IP sub-network, the IP client (e.g., a host) must map the destination IP address to the appropriate destination MAC-address. This is typically done using an address resolution protocol (ARP) and a local cache that contains a table translating the IP address to a MAC-address on the local VLAN or network. This IP address to MAC-address information is then cached or stored in the original client for use with subsequent packets to the same destination IP address. When an IP client wants to send packets to another device on another IP sub-network that is not local to the IP client, the IP client would encapsulate the packet and forward the encapsulated packet to an appropriate router for delivery to the destination.
Alternatively, an IP client may rely on Proxy ARP to exchange packets with another device on another IP sub-network. Proxy ARP is an address resolution protocol in which a router answers an ARP request with its own physical address. By pretending to be the destination host, the router accepts responsibility (i.e., proxies) for routing the IP packet to the destination host. With a network using Proxy ARP, all IP packets destined for the destination host use the router to forward the IP packets to the destination host, which provides an increased processing burden on the router and increases delay. The use of ARP and Proxy ARP are well documented in, for example, xe2x80x9cInternetworking with TCP/IP, Volume I, Principles, Protocols, and Architectures,xe2x80x9d Douglas E., Comer, 1991, which is incorporated herein by reference.
Accordingly, the present invention is directed to a method and apparatus for exchanging packets with switches. In particular, the present invention is directed to a method and apparatus for exchanging packets without using routers for routing the packets to the destination, which substantially obviates one or more of the problems due to limitations and disadvantages of the related art.
Additional features and advantages of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objectives and advantages of the invention may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims.
To achieve these and other advantages and in accordance with the purpose of the invention, as embodied and broadly described herein, there is provided a method for exchanging packets comprising the steps of assembling a logically addressed packet for transmission on a network; determining whether an address map of a host assembling the logically addressed packet includes a physical address of a destination; encapsulating the logically addressed packet in the physical address of the destination to form an encapsulated logically addressed packet, when the physical address of the destination for the logically addressed packet is included in the address map of the host; assessing whether the physical address of the destination indicates that the destination is part of the same network as the host, when the address map of the host does not include the physical address of the destination; broadcasting an address request for the physical address of the destination, when the address map of the host does not include the physical address of the destination; and receiving a response to the broadcasting of an address request, wherein the response provides the physical address of the destination, wherein the receiving step is performed when the address map of the host assembling the logically addressed packet does not include the physical address of the destination.
In another embodiment of the present invention, there is provided an apparatus for exchanging packets, comprising means for assembling a logically addressed packet for transmission on a network; means for determining whether an address map of a host assembling the logically addressed packet includes a physical address of a destination; means for encapsulating the logically addressed packet in the physical address of the destination to form an encapsulated logically addressed packet, when the physical address of the destination for the logically addressed packet is included in the address map of the host; means for assessing whether the physical address of the destination indicates that the destination is part of the same network as the host, when the address map of the host does not include the physical address of the destination; means for broadcasting of an address request for the physical address of the destination, when the address map of the host does not include the physical address of the destination; and means for receiving a response to the broadcasting an address request, wherein the response provides the physical address of the destination, wherein the means for receiving receives when the address map of the host assembling the logically addressed packet does not include the physical address of the destination.
In yet another embodiment of the present invention, there is provided a computer program product comprising computer-readable media having computer-readable code which, when run on a computer, causes the computer to exchange packets, comprising the following computer-readable program code for effecting actions in the computer: program code for assembling a logically addressed packet for transmission on a network; program code for determining whether an address map of a host assembling the logically addressed packet includes a physical address of a destination; program code for encapsulating the logically addressed packet in the physical address of the destination to form an encapsulated logically addressed packet, when the physical address of the destination for the logically addressed packet is included in the address map of the host; program code for assessing whether the physical address of the destination indicates that the destination is part of the same network as the host, when the address map of the host does not include the physical address of the destination; program code for broadcasting an address request for the physical address of the destination, when the address map of the host does not include the physical address of the destination; and program code for receiving a response to the broadcasting an address request, wherein the response provides the physical address of the destination, wherein the program code for receiving step receives when the address map of the host assembling the logically addressed packet does not include the physical address of the destination.
In still another embodiment of the present invention, there is provided a route server for providing physical address information during an exchange of packets between at least two hosts on networks comprising means for assessing whether the physical address of the destination indicates that the destination is part of the same network as the host, when the address map of the host does not include the physical address of the destination; means for recognizing whether the physical address of the destination is recognized and supported, when the physical address of the destination corresponds to a second sub-network, and when the address map does not include the physical address of the destination; and means for returning the physical address of a first device, when the physical address is not recognized, is not supported, and is not part of the same sub-network, and when the address map of the host does not include the physical address of the destination.
In yet another embodiment of the present invention, there is provided a computer program product comprising computer-readable media having computer-readable code which, when run on a computer, causes the computer to provide physical address information during an exchange of packets between at least two hosts on networks, comprising the following computer-readable program code for effecting actions in the computer: program code for assessing whether the physical address of the destination indicates that the destination is part of the same network as the host, when the address map of the host does not include the physical address of the destination; program code for recognizing whether the physical address of the destination is recognized arid supported, when the physical address of the destination corresponds to a second sub-network, and when the address map does not include the physical address of the destination; and program code for returning the physical address of a first device, when the physical address is not recognized, is not supported, and is not part of the same sub-network, and when the address map of the host does not include the physical address of the destination.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.